package com.newshub.logging.core;

import com.newshub.logging.context.LogContext;

import java.util.List;
import java.util.Map;

/**
 * 日志存储接口
 * 定义日志数据的存储和查询方法
 */
public interface LogStorage {
    
    /**
     * 存储日志
     */
    void store(LogContext context, String message, String level);
    
    /**
     * 查询日志
     */
    List<Map<String, Object>> query(String module, String level, 
                                   String startTime, String endTime, 
                                   String keyword, int page, int size);
    
    /**
     * 获取日志统计信息
     */
    Map<String, Object> getStatistics(String module, String level, 
                                     String startTime, String endTime);
    
    /**
     * 删除过期日志
     */
    void deleteExpiredLogs(String beforeTime);
    
    /**
     * 导出日志
     */
    byte[] exportLogs(String module, String level, 
                     String startTime, String endTime, 
                     String format);
}
